### logging的级别

# - debug：调试信息
# - info：正常运行信息
# - warning：警告，程序仍在工作，但可能有错误发生
# - error：严重错误，程序某些功能不能执行
# - critical：严重错误，程序已不能运行
import logging

# # logging.basicConfig(level=logging.DEBUG)
# # logging.basicConfig(filename="my_log.log", filemode='w', level=logging.DEBUG, encoding='utf-8')
# logging.basicConfig(format="%(asctime)s|%(levelname)s|%(filename)s|%(lineno)s|%(message)s", filename="my_log.log", filemode='w', level=logging.DEBUG, encoding='utf-8')
#
# logging.debug("这是debug级别的日志")
# logging.info("这是info级别的日志")
# logging.warning("这是warning级别的日志")
# logging.error("这是error级别的日志")
# logging.critical("这是critical级别的日志")


# 实例化一个记录器
logger = logging.getLogger()   # 默认记录warning级别以上的
logger.setLevel(logging.DEBUG)

# 控制台输出的处理器
sh = logging.StreamHandler()
sh.setLevel(logging.DEBUG)

# 文件输出的处理器
fh = logging.FileHandler('my_log_1.log', encoding='utf-8')
fh.setLevel(logging.INFO)

# 格式
fm = logging.Formatter("%(asctime)s|%(levelname)s|%(filename)s|%(lineno)s|%(message)s")

# 把格式设置到处理器中
sh.setFormatter(fm)
fh.setFormatter(fm)

# 将处理器添加到记录器中
logger.addHandler(sh)
logger.addHandler(fh)



logger.debug("这是debug级别的日志")
logger.info("这是info级别的日志")
logger.warning("这是warning级别的日志")
logger.error("这是error级别的日志")
logger.critical("这是critical级别的日志")